package com.fndsoft.police.xuancheng.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.fndsoft.police.xuancheng.R;
import com.fndsoft.police.xuancheng.domain.PageDomain;
import com.fndsoft.police.xuancheng.listener.CommonListener;
import com.lidroid.xutils.ViewUtils;
import com.lidroid.xutils.view.annotation.ViewInject;
import com.lidroid.xutils.view.annotation.event.OnClick;

/**
 * 分页栏
 * 
 * @author carlos carlosk@163.com
 * @version 创建时间：2014年4月30日 下午10:57:46
 */

public class PageBar extends LinearLayout {
	public PageBar(Context context) {
		super(context);
		init(context);
	}

	private PageDomain pageDomain;

	public PageBar(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		init(context);
	}

	public PageBar(Context context, AttributeSet attrs) {
		super(context, attrs);
		init(context);
	}

	@ViewInject(R.id.tvPageCurrentIndex)
	private TextView tvPageCurrentIndex;
	@ViewInject(R.id.tvPageCount)
	private TextView tvPageCount;
	private CommonListener queryCommonListener;// 查询新的数据的监听器

	/**
	 * 初始化
	 * 
	 * @author carlos carlosk@163.com
	 * @version 创建时间：2014年4月30日 下午10:58:39
	 */
	private void init(Context context) {
		LayoutInflater mInflater = LayoutInflater.from(context);
		mInflater.inflate(R.layout.page_bar_layout, this);
		ViewUtils.inject(this, this);
		pageDomain = new PageDomain();
		clear();
	}

	/**
	 * 清除数据
	 * 
	 * @author carlos carlosk@163.com
	 * @version 创建时间：2014年4月30日 下午11:02:03
	 */
	public void clear() {
		pageDomain.clear();
		fillView(null);
	}

	@OnClick(value = { R.id.ivPageTop, R.id.ivPagePre, R.id.ivPageNext,
			R.id.ivPageBottom })
	/**
	 * 点击了分页的按钮
	 * @author carlos carlosk@163.com
	 * @version 创建时间：2014年4月18日 上午12:40:04
	 */
	public void onClickPageViews(View view) {
		int id = view.getId();
		boolean enabled = false;
		int currentIndex = pageDomain.getPageIndex();
		switch (id) {
		case R.id.ivPageTop:
			if (currentIndex > 1) {
				currentIndex = 1;
				enabled = true;
			}
			break;
		case R.id.ivPagePre:
			// 如果索引比一页还大,那说明有前面一页
			if (currentIndex > 1) {
				currentIndex--;
				enabled = true;
			}
			break;
		case R.id.ivPageNext:
			if (currentIndex < pageDomain.getPageCount()) {
				currentIndex++;
				enabled = true;
			}
			break;
		case R.id.ivPageBottom:
			if (currentIndex < pageDomain.getPageCount()) {
				currentIndex = pageDomain.getPageCount();
				enabled = true;
			}
			break;
		default:
			break;
		}
		if (enabled) {
			pageDomain.setPageIndex(currentIndex);
			// 点击了某个分页后的结果
			if (null != queryCommonListener) {
				queryCommonListener.onClickOne(null);
			}
		}
	}

	public void setQueryCommonListener(CommonListener queryCommonListener) {
		this.queryCommonListener = queryCommonListener;
	}

	/**
	 * 根据pagedomain填充数据
	 * 
	 * @author carlos carlosk@163.com
	 * @version 创建时间：2014年4月18日 下午5:13:30
	 */
	public void fillView(PageDomain pageDomain1) {
		if (null != pageDomain1) {
			pageDomain = pageDomain1;
		}
		int currentIndex = pageDomain.getPageIndex();
		if (pageDomain.getPageCount() <= 0) {
			currentIndex = 0;
			tvPageCount.setText("0");
			tvPageCurrentIndex.setText("0");
			return;
		}
		// 设置当前页
		tvPageCurrentIndex.setText(currentIndex + "");
		tvPageCount.setText(pageDomain.getPageCount() + "");
	}

	public PageDomain getPageDomain() {
		return pageDomain;
	}
}
